/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ec.edu.ucuenca.pagina_asos.uimanager;

import ec.edu.ucuenca.pagina_asos.controller.GenericController;
import ec.edu.ucuenca.pagina_asos.entity.Categoria;
import ec.edu.ucuenca.pagina_asos.entity.Escuela;
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.el.ELContext;
import javax.el.ValueExpression;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author Usuario
 */
@ManagedBean(name="GestorCategoriaMaterial")
@SessionScoped
public class GestorCategoriaMaterial implements Serializable {

    /**
     * Creates a new instance of CategoriaDocumentoBean
     */
    
    public static GestorCategoriaMaterial getInstance() {
        ELContext context = FacesContext.getCurrentInstance().getELContext();
        ValueExpression ex = FacesContext.getCurrentInstance().getApplication().getExpressionFactory().
                createValueExpression(context, "#{GestorCategoriaMaterial}", GestorCategoriaMaterial.class);
        return (GestorCategoriaMaterial) ex.getValue(context);
    }
    
    private String proceso;
    GenericController controller=new GenericController();
    Escuela escuela=new Escuela();
    
    private List<Categoria> listCategoria;
    private Categoria categoria;
    
    public GestorCategoriaMaterial() {
    }
    
    
    @PostConstruct
    public void init() {
        categoria=new Categoria();
        escuela=GestorUsuario.getInstance().getUsuarioActual().getPersona().getEscuela();
        cargarLista();
    }
    public void cargarLista() {
        //listCategoria = controller.findWhere_Escuela(new Categoria(), escuela);
        listCategoria = controller.findWhere(new Categoria(), escuela);
    }
    public String guardar()
    {
        categoria.setEscuela(escuela);
        if(categoria.getId()==null)
            proceso="nuevo";
        else
            proceso="actualizar";
        if (proceso.compareTo("actualizar")==0)
        {
            try {
                
                controller.edit(categoria);
                return "FrmCategorias.xhtml";
            } catch (Exception ex) {
                
            }
        }
        else
        {
            System.out.println("Guardadb");
            controller.create(categoria);
            System.out.println("Guardadc");
            cargarLista();
            return "FrmCategorias.xhtml";
        }
        return "";
    }
     public String editar(Categoria categoria){
        
        int as=0;
        this.categoria=new Categoria();
        this.categoria=categoria;
        proceso = "actualizar";
        
        return "FrmCrearCategoria";
    }
     public String eliminar (Categoria categoria)
     {
        this.categoria=new Categoria();
         this.categoria=categoria;
         controller.destroy(categoria, categoria.getId());
         return "FrmCategorias.xhtml";
     }
     public String cancelar ()
     {
          return "FrmCategorias.xhtml";
     }

    public String getProceso() {
        return proceso;
    }

    public void setProceso(String proceso) {
        this.proceso = proceso;
    }

    public List<Categoria> getListCategoria() {
        return listCategoria;
    }

    public void setListCategoria(List<Categoria> listCategoria) {
        this.listCategoria = listCategoria;
    }

    public Categoria getCategoria() {
        return categoria;
    }

    public void setCategoria(Categoria categoria) {
        this.categoria = categoria;
    }

    public Escuela getEscuela() {
        return escuela;
    }

    public void setEscuela(Escuela escuela) {
        this.escuela = escuela;
    }
}
